package com.woniuxy.amusementparkos.dao.ssj;

import java.math.BigDecimal;
import java.util.List;

import com.woniuxy.amusementparkos.entity.ssj.Csw;
import com.woniuxy.amusementparkos.entity.ssj.Cus;
import com.woniuxy.amusementparkos.entity.ssj.Cw;
import com.woniuxy.amusementparkos.entity.ssj.Cwos;
import com.woniuxy.amusementparkos.entity.ssj.Cwosog;
import com.woniuxy.amusementparkos.entity.ssj.Goios;

public interface CusDao {
	// 查询所有顾客详细信息 5表
	List<Csw> selectAllCsw(int page,int pageSize);

	// 查询指定顾客的总消费额 4表
	long sumOtotalByCid(Integer cid);

	// 查询指定顾客的总退款额 4表
	long sumOtotalByCidAndOstate(Integer cid);

	// 查询所有顾客信息 单表
	List<Cus> selectAllCus();

	// 根据顾客编号更新顾客消费总额 单表
	void updateCtotalByCid(Integer customer_id, BigDecimal ctotal);

	// 根据顾客编号更新顾客消费等级 单表
	void updateLidByCid(Integer customer_id, Integer lid);

	// 根据腕带的未使用状态查询所有的顾客余额信息 2表
	List<Cw> selectAllBalanceByCwstate(int page,int pageSize);

	// 根据腕带的使用状态查询所有的顾客余额信息 2表
	List<Cw> selectBalanceByCwstate(int page,int pageSize);

	// 查询指定顾客的消费记录 4表
	List<Cwos> selectSpendDetailByCid(Integer cid,int page,int pageSize);

	// 根据顾客创建时间查询统计新增顾客数 单表
	long countCusctime();

	// 根据腕带创建时间查询统计入园顾客数 单表
	long countWiWictime();

	// 根据订单创建时间查询统计消费顾客数 单表
	long countOrdOctime();

	// 查询统计所有顾客入园信息 4表
	List<Cwos> selectAllCwos();

	// 查询统计单个顾客入园次数 2表
	long countWictimeByCid(Integer cid);

	// 查询统计单个顾客消费次数 4表
	long countOctimeByCid(Integer cid);

	// 查询所有的商品有关信息 4表
	List<Goios> selectAllGoios();

	// 查询统计所有顾客消费商品数量 4表
	long sumNumByGid(Integer gid);

	// 查询统计所有顾客消费商品消费额 4表
	long sumSpendByGid(Integer gid);

	// 查询单个顾客所有消费数据 6表
	List<Cwosog> selectListByCid(Integer cid);

	// 查询统计单个顾客消费商品数量 6表
	long sumOneNumByGid(Integer gid);

	// 查询统计单个顾客消费商品消费额 6表
	long sumOneSpendByGid(Integer gid);
	// 查询统计顾客总人数 单表
	long countCus();
	// 查询统计腕带状态为0时的顾客总人数 单表
	long countCw();
	// 查询统计腕带状态为1时的顾客总人数 单表
	long countCwb();
	// 查询统计单个顾客订单数据总数 4表
	long countByCid();

	long countCouGoods();

}
